C Ðàçìåùåíî íà http://tms.ystu.ru
character *20 name
Call Grinit
Call MMS
Call SetMod(1,3)
Call SetBgr(-1)
c îðãàíèçàöèÿ äèàëîãà äëÿ ââîäà ïàðàìåòðîâ
c ñîçäàíèå çàïðîñà
write (*,1)
c ôîðìàò çàïðîñà
1 format (/////1x,'Ïîæàëóéñòà ââåäèòå êîîðäèíàòû òî÷êè:',/1x,'x='\)
read (*,2)x
2 format (f4.0)
write (*,3)
3 format (/1x,'',/1x,'y='\)
read (*,4)y
4 format (f4.0)
c çàïèñü èíôîðìàöèè â ôàéë
write (*,5)
5 format (//1x,'Ïîæàëóéñòà ââåäèòå èìÿ ôàéëà äëÿ çàïèñè:'\)
read (*,'(A20)') name
open (1,file=name,status='unknown')
write (1,6)x,y
6 format(1x,'x=',f4.0,5x,'y=',f4.0)
close(1)
c îòêðûòèå ñòðàíèöû
Call Page(250.,250.,'Postnov_1',9,1)
c èìÿ ïîëüçîâàòåëÿ
c öâåò íàäïèñè
Call SetPen (1)
c íàêëîí øðèôòà
Call italic (1)
Call symbol
(120.,230.,10.,'Postnov_D.V._MT-55',18,0.)
c îñè ñèñòåìû êîîðäèíàò
c öâåò îñåé ñèñòåìû êîîðäèíàò
Call SetPen(2)
Call Narrow (x,y,x+80.,y,5.,2)
Call symbol (x+76.,y+2.,7.,'X',1,0.)
Call Narrow (x,y,x,y+80.,5.,2)
Call symbol (x-6.,y+75.,7.,'Y',1,0.)
c îñåâûå ëèíèè êðèâîëèíåéíîãî êîíòóðà
c öâåò îñåâûõ ëèíèé
Call SetPen(7)
c ãîðèçîíòàëüíàÿ îñåâàÿ ëèíèÿ
Call MovE (x-5.,y+30.,0)
Call MovB (10.,0.,1)
Call MovB (2.,0.,0)
Call MovB (1.,0.,1)
Call MovB (2.,0.,0)
Call MovB (10.,0.,1)
Call MovB (2.,0.,0)
Call MovB (1.,0.,1)
Call MovB (2.,0.,0)
Call MovB (10.,0.,1)
Call MovB (2.,0.,0)
Call MovB (1.,0.,1)
Call MovB (2.,0.,0)
Call MovB (10.,0.,1)
Call MovB (2.,0.,0)
Call MovB (1.,0.,1)
Call MovB (2.,0.,0)
Call MovB (20.,0.,1)
c âåðòèêàëüíàÿ îñåâàÿ ëèíèÿ
Call MovE (x+50.,y+5.,0)
Call MovB (0.,10.,1)
Call MovB (0.,2.,0)
Call MovB (0.,1.,1)
Call MovB (0.,2.,0)
Call MovB (0.,10.,1)
Call MovB (0.,2.,0)
Call MovB (0.,1.,1)
Call MovB (0.,2.,0)
Call MovB (0.,10.,1)
Call MovB (0.,2.,0)
Call MovB (0.,1.,1)
Call MovB (0.,2.,0)
Call MovB (0.,15.,1)
c âû÷åð÷èâàíèå êðèâîëèíåéíîãî êîíòóðà
c öâåò ëèíèé íîíòóðà
Call SetPen(6)
R=20.
Call MovE (x,y+30.,0)
Call MovB (50.,30.,1)
Call MovB (20.,-30.,1)
Call MovB (-70.,0.,0)
Call MovB (50.,-20.,1)
Call arcib (20.,x+50.+R,y+30.,0)
Call Reset
Call beglev
c íàíåñåíèå ðàçìåðîâ
c öâåò ëèíèé ðàçìåðîâ
Call SetPen(4)
c íèæíèé
ðàçìåð
r=10.
s=30.
Call Rotate(0.,0.,-90.)
Call Transl(x,y+30.)
Call str(r,s)
Call symbol(s/2+4.,-r,5,'30',2,180.)
Call Reset
c âåðõíèé
ðàçìåð
r=10.
s=30.
Call Rotate(0.,0.,90.)
Call Transl(x+70.,y+30.)
Call str(r,s)
Call symbol(s/2-4.,-r,5,'30',2,0.)
Call Reset
Call MovE(x+50.,y+60.,0)
Call MovB(20.,0.,1.)
c ðàäèóñ
R=20.
Call Rotate(0.,0.,-45.)
Call Transl(x+50.,y+30.)
Call rad(R)
Call symbol(R/2-5.,0.,5,'R20',3,0.)
Call Reset
c ðàçìåð
r=10.
s=50.
Call Transl(x,y)
Call str(r,s)
Call symbol(s/2-4.,-r,5,'50',2,0.)
Call Reset
Call MovE(x+50.,y,0)
Call MovB(0.,10.,1.)
Call endlev
Call EndPg('Postnov_1')
End
c ïîäïðîãðàììà ëèíåéíûõ ðàçìåðîâ
Subroutine str(r,s)
x=0.
y=0.
y1=y-r
y2=y1-r/3
Call MovE(x,y,0)
Call MovE(x,y2,1)
Call MovE(x,y1,0)
Call MovA(4.,10.,1)
Call MovE(x,y1,0)
Call MovA(4.,350.,1)
Call MovE(x,y1,0)
Call MovE(x+s,y1,1)
Call MovA(4.,170.,1)
Call MovE(x+s,y1,0)
Call MovA(4.,190.,1)
Call MovE(x+s,y2,0)
Call MovE(x+s,y,1)
Return
End
c ïîäïðîãðàììà ðàäèóñà
Subroutine rad(R)
Call MovE(x,y,0)
Call MovE(R,y,1)
Call MovA(4.,170.,1)
Call MovE(R,y,0)
Call MovA(4,190.,1)
Return
End